package com.vanward.mes.scan.service;

import com.vanward.mes.scan.dto.BatchScanRequestDTO;
import com.vanward.mes.scan.dto.BatchScanResultDTO;
import com.vanward.mes.scan.dto.ScanResultDTO;
import com.vanward.mes.scan.dto.WorkOrderStatsDTO;
import com.vanward.mes.scan.dto.WorkshopLineTreeDTO;

import java.util.List;

/**
 * 扫码服务接口
 */
public interface ScanService {

    /**
     * 处理扫码业务逻辑
     * @param barcode 条码编号
     * @param scanType 扫码类型（IN-上线，OUT-下线）
     * @param lineId 产线ID
     * @return 扫码结果
     */
    ScanResultDTO processScan(String barcode, String scanType, String lineId);
    
    /**
     * 批量处理扫码业务逻辑
     * @param request 批量扫码请求
     * @return 批量扫码结果
     */
    BatchScanResultDTO processBatchScan(BatchScanRequestDTO request);
    
    /**
     * 获取工单统计数据
     * @param barcode 条码编号
     * @return 工单统计数据
     */
    WorkOrderStatsDTO getWorkOrderStats(String barcode);
    
    /**
     * 查询车间产线树结构
     * @return 车间产线树结构列表
     */
    List<WorkshopLineTreeDTO> selectWorkshopLineTree();
}
